#ifndef BEAM_H
#define BEAM_H

#include <Loadings.h>
#include <vector>

class Beam
{
    public:
        /** Default constructor */
        Beam(){}

        /**
            Default constructor
            param: BeamLength int
        */
        Beam(int BeamLength)
        {
            m_Length = BeamLength;
        }

        //vector of the Loadings class to hold the beam loads
        //This will be accessed in the child classes to use in the calculations
        std::vector<Loadings> m_loads;

        void AddBeamLoad(int LoadValue, int LoadLocation)
        {
            Loadings newLoad(LoadValue, LoadLocation);
            m_loads.push_back(newLoad);
        }


        /** Default destructor */
        virtual ~Beam(){}

        /** Access m_Length
         * \return The current value of m_Length
         */
        int GetLength() { return m_Length; }

        /** Set m_Length
         * \param BeamLength New value to set
         */
        void SetLength(int BeamLength) { m_Length = BeamLength; }

    protected:
    private:
        int m_Length;


};

#endif // BEAM_H
